package br.com.uniban.dto;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class QuestaoDTO implements Serializable {

	private static final long serialVersionUID = 1L;
	private Short idDisciplina;
	private Long idUsuario;
	private String palavraChave;
	private String login;
	private Boolean flAtiva;
	private Boolean flMinhasPerguntas;
	private List<Integer> listaIdQuestoes;

	public Short getIdDisciplina() {
		return idDisciplina;
	}

	public void setIdDisciplina(Short idDisciplina) {
		this.idDisciplina = idDisciplina;
	}

	public Long getIdUsuario() {
		return idUsuario;
	}

	public void setIdUsuario(Long idUsuario) {
		this.idUsuario = idUsuario;
	}

	public String getPalavraChave() {
		return palavraChave;
	}

	public void setPalavraChave(String palavraChave) {
		this.palavraChave = palavraChave;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public Boolean getFlAtiva() {
		return flAtiva;
	}

	public void setFlAtiva(Boolean flAtiva) {
		this.flAtiva = flAtiva;
	}

	public Boolean getFlMinhasPerguntas() {
		return flMinhasPerguntas;
	}

	public void setFlMinhasPerguntas(Boolean flMinhasPerguntas) {
		this.flMinhasPerguntas = flMinhasPerguntas;
	}

	public List<Integer> getListaIdQuestoes() {
		return listaIdQuestoes;
	}
	public void setListaIdQuestoes(List<Integer> listaIdQuestoes) {
		this.listaIdQuestoes = listaIdQuestoes;
	}
	
	public String getListaIdQuestoesString() {
		String lista = "";
		if(listaIdQuestoes!= null)
			lista = listaIdQuestoes.toString();
		return lista;
	}

	public void setListaIdQuestoesString(String listaIdQuestoes) {

		List<Integer> lista = null;
		if(listaIdQuestoes != null && listaIdQuestoes.trim().length() > 0){
			lista = new ArrayList<Integer>();
			String[] array = listaIdQuestoes.split(",");
			for (String id : array) {
				lista.add(Integer.valueOf(id));
			}
		}	

		this.listaIdQuestoes = lista;
	}

	public boolean isUsaWhere() {
		return toString().replace("null", "").replace(",", "").length() > 0 ? true
				: false;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((flAtiva == null) ? 0 : flAtiva.hashCode());
		result = prime
				* result
				+ ((flMinhasPerguntas == null) ? 0 : flMinhasPerguntas
						.hashCode());
		result = prime * result
				+ ((idDisciplina == null) ? 0 : idDisciplina.hashCode());
		result = prime * result
				+ ((idUsuario == null) ? 0 : idUsuario.hashCode());
		result = prime * result
				+ ((listaIdQuestoes == null) ? 0 : listaIdQuestoes.hashCode());
		result = prime * result + ((login == null) ? 0 : login.hashCode());
		result = prime * result
				+ ((palavraChave == null) ? 0 : palavraChave.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		QuestaoDTO other = (QuestaoDTO) obj;
		if (flAtiva == null) {
			if (other.flAtiva != null)
				return false;
		} else if (!flAtiva.equals(other.flAtiva))
			return false;
		if (flMinhasPerguntas == null) {
			if (other.flMinhasPerguntas != null)
				return false;
		} else if (!flMinhasPerguntas.equals(other.flMinhasPerguntas))
			return false;
		if (idDisciplina == null) {
			if (other.idDisciplina != null)
				return false;
		} else if (!idDisciplina.equals(other.idDisciplina))
			return false;
		if (idUsuario == null) {
			if (other.idUsuario != null)
				return false;
		} else if (!idUsuario.equals(other.idUsuario))
			return false;
		if (listaIdQuestoes == null) {
			if (other.listaIdQuestoes != null)
				return false;
		} else if (!listaIdQuestoes.equals(other.listaIdQuestoes))
			return false;
		if (login == null) {
			if (other.login != null)
				return false;
		} else if (!login.equals(other.login))
			return false;
		if (palavraChave == null) {
			if (other.palavraChave != null)
				return false;
		} else if (!palavraChave.equals(other.palavraChave))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return idDisciplina + "," + palavraChave + "," + login + "," + flAtiva + "," + flMinhasPerguntas + "," + listaIdQuestoes;
	}
}